{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "from torch.autograd import Variable\n",
    "import torch.nn.functional as F\n",
    "import torchaudio\n",
    "import librosa\n",
    "import torchaudio.transforms as trans\n",
    "from model import WaveNet"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib.pyplot as plt\n",
    "import IPython.display\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "audio,_ = librosa.load('./VCTK/p225/p225_001.wav',sr=16000,mono=True)\n",
    "audio,_ = librosa.effects.trim(audio, top_db=10, frame_length=2048)\n",
    "wav_tensor = torch.from_numpy(audio).unsqueeze(1)\n",
    "wav_tensor = trans.MuLawEncoding()(wav_tensor).transpose(0,1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f51facb4e10>]"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAhoAAAFkCAYAAABmeZIKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Xn8FfP+B/DXO0VJC1LJTqQoklQSyZJ9F19c5FrvtXUv\nLq4u13Jdy0/2e5FLxNdFyhZlK9KGotBiy9aeNqmo7+f3x+d87pnvfGfOmTln9vN6Ph7fx5wzM2fm\n8z0zZ+Y9n1WUUiAiIiIKQ724E0BERETZxUCDiIiIQsNAg4iIiELDQIOIiIhCw0CDiIiIQsNAg4iI\niELDQIOIiIhCw0CDiIiIQsNAg4iIiELDQIOIiIhC4yvQEJFrRGSyiKwQkQUiMlxEdrGtM0ZEaix/\n60XkQds624jIqyKySkTmi8jtIsKgh4iIKGPq+1y/F4D7AHyY++ytAEaLSHul1OrcOgrAwwAGApDc\nvF/MBnIBxUgAcwF0B9AGwJMAfgVwXWn/BhERESWRlDOomoi0ALAQwP5KqXG5ee8AmKqU+pPLZw4H\n8BKALZVSi3PzLgDwTwBbKKXWlZwgIiIiSpRyiyuaQ+dg/GSbf7qILBKR6SLyDxFpZFnWHcB0E2Tk\njALQDMBuZaaHiIiIEsRv0cn/iIgAuBvAOKXU55ZFTwH4FrpopBOA2wHsAuCk3PLWABbYNrfAsuwT\nh31tDqAvgDkA1pSaZiIiogrUEMD2AEYppZZEvfOSAw0ADwLoAKCndaZSarDl7WciMh/AWyKyg1Lq\nmyLbdCvH6QsdwBAREVFpTgfwdNQ7LSnQEJH7ARwBoJdSal6R1Sflpm0BfANgPoCutnVa5ab2nA5j\nDgAMHToU7du3951eN126APvsA0yeXHt+587A1KnAjjsCG20EzJgBPPEEsBsLdgIzYMAADBo0KO5k\nUEB4PLOHxzQ7ZsyYgTPOOAPI3Uuj5jvQyAUZxwI4QCn1nYePdIbOqTAByQQA14pIC0s9jUMBLAfw\nucPngVxxSfv27bHXXnv5TXIdL78MjBunX9uDDEAHGQDw9df5effdBxx4IHDbbWXvngA0a9YskGNJ\nycDjmT08ppkUS9UDX4FGrj+MKgDHAFglIiYnYrlSao2I7AjgNOjmq0sA7AHgLgBjlVKf5tYdDR1Q\nPCkifwGwJYCbANyvlPqt3H+okJoaYPBg4IIL/H/2gw/0X/fuQIcOwKRJwJlnBp9GIiKiLPGbo3Eh\ndO7EGNv8/gCegO4L42AAlwFoDOB7AM8BuMWsqJSqEZGjAPwLwHgAqwA8DuB636n3aeTI0oIMqxNO\nyL/u1AnYZhtg4UJg110BEffPERERMGsW0LYtsMEGcaeEouIr0FBKFWwOq5T6AUBvD9v5HsBRfvYd\nhFWrgt1e58751//5D9C/f7DbJyLKkhUr9EPZwIHAjTfGnRqKSkV1+11G32RFnXMOczT8qKqqijsJ\nFCAez+wJ8piuXKmvj0/n2juYenBUGRhoBOzEE4HRo8PfT9rxxpQtPJ7ZE+QxXZyr9j9smJ6uXx/Y\npikFGGgE7IUXgGOPBR56KPx9ERGlQb3cncbk+kZxLabkqJhA46uvgCUR9Ye2Zg1w4YW66ezChdHs\nk4go6RhoVKZyegZNlbZto99nt256yh8VEVUycw1koFGZKiZHI04iQKNGwIYbxp0SIqLomcDCFKEw\n0KgsDDQismYN8NtvwO67A1dfDfTuHXeKiIiixZZ5laliik6S4rPP9J/dyy8DLVvmi1uIiLKKORqV\nhYFGjKZPB1q10mOqHHOMnqcU8OOPOgdkp53iTR8RURDsgQUDjcrCQCNGnTrVnbdmDbD11vo1f4yU\nRL/9prPAa2qA+vWBX3/VoxwzW5ycrFmjzxVAnztmHlUO1tFImEaN4k4BUWEbbgjsu68OLs46S5+z\njz4ad6ooib7/Xp8fw4fr92+8oafvvx9fmih6DDQS7pFH9EWdKEk++EBPhw7V0yefBJo2BWbPji9N\nlDzffaenY8bEmgyKGQONBLvpJuD884EJE/T7uXOBW29lkQolz4QJejyLwYP1gFk//MBzlfLHn+dB\nZWOgkWB/+1v+9eTJehyVa6/VF3S7MWNY7knxMf0j3HEHcPPNQIcO+lz9/ntg/Ph400bxeOcdYO1a\n/dppbJPx44Hly6NNE8WjIgKNLJzM3boBEyfq1+bpwPxfy5YBBx4IXHFFPGkjslcENTeYU04BevYE\n1q1zDpApm376CejTB7jqKv3eVAa16tkTOO20aNNF8ch8oDFkCNC8edypCN748fr/mjxZ1/oHgG+/\njTdNVLnsgYYJhr/8Uk/PP1/X4aDKYHJXTR0Np0AD4DWrUmS6eWvLlsCiRXGnIngHHwzMnKlfH3YY\nsN12+rW52LdtC1x+OXDxxfGkj8gEGibL/Nln9fThh4FXXwVefDGedFE07GObuNl4Y53z0bWrHkr+\n55+B//43/PRRtDKVozF7NnDLLfq1UtkMMgDgww/1DxIAli4FPv649vKvvgL+9Kfo00WVy+2J1eS2\nmaKUCy4AXnop+P0vWwacd57+PVitW6d/C0uXAldeqa8Jf/2r7hSPwuN1ELWNN9Z1OW6/HfjPf/IB\nKWVLpgKN444DrrtOv543L960xGHRonwzst9+0xf0adPyTQ6//VY3S3zrLX1hJgqKU2U/AGjSRE/X\nras9f84cYNSo4PY/fLhu8WL6azDGjgUGDQL69wfuvBM491zgH/8ALroIGD0aWLEiuDRQngk8i+Vo\n1HfIU583T/ezsWaNzv2i9MtUoGGtJPnLL/GmJQ4TJ+pKocaxxwJ77AG0awcsWADssAOwzz666OXU\nU+NLJ2WPPdAwNxi3AOTUU3Wx35o1pQW9NTX58v9PPskHMjU1OqBWSk/to4WaaU0N0LcvcPbZOsve\nHghRedxyuLzYZx9gv/2Aa64BjjoKmD8/uHSVYv367OaORyVTgYa5uDVvzk6u7Fq3rp19yUpYFCR7\n1vgGG+ipW6AxaZKe9u4NbLqp//09+qium3TSScCeewKPPabnT58ObL89cOONemrqgpj02OuOfPkl\nsMUWwB//6D8N5M58v+aa7Jaz4VSk8sMPemqKt+IOAq+6Stf3o9JlKtCYMSP/mhFoYTNn6h9/3D9i\nSo8rrgDat/e2brEcDcMEHF598IEOMF55Rb8fNkxPp03TU3NzGj1aTz/9VE9NzoZJjz1dI0f6SwcV\nZnI0zPf+9tvO6xXqyMsco3ox36XMuUSly1SgQf6ZSnpExfzf/+VbO7kxOQdeAw3jzTd1B19vvaUr\nBhozZwKXXabL7c8/X7da+e67fEBhigD337/2fs3NyV5XwATWJl3WG93NNwPjxnlLLxVmz9EohRkP\nZckS4Jxz8gOyhe0vf9HFcU89BTzxRP6c+eYb4NJLyysWqlSZbt5KxU2ZoouaOnaMOyWUBfXq6ZuM\n/cZeTL9+umXIrbfq92ecAXz2me4dd+JEXe9qyBCgSxe9fJNN9NTeusFM7UUl1roZgHMANHCgnr73\nni5qbNvWW9qpLq+5Ee+8475swQI9ve02fdM//3yge3fvafjyS72Nnj29fwbQge6wYbr1HgDssoue\n/vnPurLxNdcAW27pb5uVjoFGhTNPgt98o8u0icphbix+Aw17s9Q+fYBZs3RX5oB+qgXyoxvb61rY\nn5xNoGEPLOyfM6yf79Wr9rrkn73oJKht/vijrlPz88+6xUrjxnrettvm11uwQHcOt/PO+r3X4zhn\nTv4aaD0fzLligtuVKxlo+MWiEwKgW6SYIZyJSlVqoGFnikY231xPV63SU3tzSLdKh/bWJm6BBoOJ\ncARRdGJ8+KGevvIKsPXWuuLu5pvr1zffrOvsmPMD0LlRhxzibx+vvaavgWYAS+t5Zs5hM89rcSDl\nZSbQCOKErnQc4pvKZb/Bl7sd82Rsmqvbi0LsWfT2ohO3ohK3m4X5HJXHaz8aXphO30wFf1N3Y+XK\nfGAwf77el6l0atYBdH9CIrWDETuzvikuadAgv8ycKybQiKquSJZkJtCg8o0YoSvkEZUqqEDD3qOk\neaq0b9dc9O2BhtccDfsN0Rpo3HNPvtks+RNki5Fjj9XTAw7QU+sxMsdvzhw9HTGi7uefekpPf/rJ\nfR9mmxtvXHcf5twz80zgQ94x0KD/efPNfGU8olIU63LaK3uOhmF/b24CbnU07IGKYc8ZsX8O0OMF\nnXOO9zRTnjlOJoegHF98oadOwYvZj7n5W3MiDKdz8ZlndL2f4cP1w5X5vDn+1qITe47Gr7/qANQp\nh0Qp3ceLGVSOtEwEGpXYCyhVtrVrg7mIB83tBu6XCRzcAg2zfZOjYa+jYf+8fTtu6WQRbDCCbAJq\nuiG3514B+S7kTWXiQued9ZyoqgLOOgs44QT9cGWa+ZttF6qjMWOGDkBNKyWradN0N/dmzC3SMhFo\nEFWaCy9MdvPLcm805oJvz4mw161wKy+319GwBxZ+AiKl2HeCX2FUmLQHlYDuwA3QY9kAdVsvAe7H\neOHC/GsTaJhtO+VomO2sXq2nK1fW3abZjtOySpaJQIM1x4MlAgwYEHcqqJCJE+NOgbOgcjRMoGEP\nJOyBg8nyts+39wTqlq5i7wHdf8MRR3hPO4XDKUfDMOeBU+62OTfWrNHXNjMMvbWuhXltr48B1A2a\nLrnEPR32fl1Iy0SgwaeN4N19d9wpoEKK9dAZt6ByNMwNwC0nwq1Sp73oxC2gsM93SvfgwcGONFsJ\nwrjRFgo0DKfRYM0xXb5cT81Q9NYg1qxj5jlVBrWfK9Z0vPOOrrTq1Nrm3nuBv/7VPc2VIBOBBnM0\nwnHLLaxhTaUJqo6G/fyzN1d1q4PhVsejWNEJryXBCON7NOPbFApinIrSTFBu/9znn+df2/t9cSo6\nsatXT+csjhkD/P73uhmtU47GZZcB//iHe5orQSZ6BmWORjiuuw7o3JnZxuRdUEUn9tYE9vn2qb2L\ncbccjWIBBgON5BozRk8L5Wi0aZNfxxx7E2h4KdYwgYo10HDLFatXD+jRQ79u2tR5HdIykaPBQCM8\nzNEgL+wX73IvuOYpsligYQ8Q7M1d3epoMEcjvZwCjdat9XSLLfR0t93qruOlRYpTHQ0v6TCtX+x1\nhEjLxNfBQCM8rNREfgTVj4YJEOyjC7vlaNiHfw+yjgb5F2bA5nRNOvlkPTXjkTh59FE9LfTw5JRu\nt3PaKR1mnZ9/1subNcsvu+22yr2eMtCggir1h0H+BNUjqGEvCik2355z4daPRjlFJv/9L3DkkcXX\no3BZuxc3vBxH02uoyX1wUmg7hSqD2tcxvZBa92V6KK1EmaijwezO8DDQID+C+i26VfJ0G7vEvr5b\nZVCjlKKTqipea5LKy3ExxSHWXC8/zVHN4G5GoUDDyfTpevr117o79a+/du7JNIuYo0EF/fQT8Nln\ncaeCki7oG7DXgMKtmavhNkprKR14McjwLq7vymm/jRvrqb0IxEuuhdWkSbXf+w00jJ12An74QXeD\nXikykaPBQCM8Z5+tp7zIUiFhBRpurUpKraPB8zjbvAQPhXotLVRHw86prof9/Ctk3Trdt0fTptnP\nOWaOBlGKZfXG6TVHw7DnbJTa6oTSyc9xtHdr77QdL9u755668+69V0+9DCX/+utA8+b5nkazjIEG\nUYol5UYZVY6GPWfDrdWI31YnftKflO88yZJUdGKvh+EUaATVPPvll/XU3lrKyWuv6ekDD5S2rzTJ\nRKDBHz5VqqSd+0Glxy17u1grErcckCBzNPhgk1ym3oNTUUShQMPwU3RS6PNePpO0326YMhFo8IdP\nlC1uF2G3IhW3Zq9GsUqhfvB6kzxLluipaRliPa6mGMM0TT7rLPftmM+NHl1eej7+WE+bNHFfp1Ja\nnAAMNIhSLatPRcX6zyiWU+HWLNa+vVKEMQR61kR9XpoRWQ3rMO0mB6NRIz1t3tx9O/YeZoHS7i8/\n/KCnnTu7r7Pttnp6wgn+t582DDSIKDBh32CKFZ3Y17NXEg2iCIXXm+SbM8d9md/ikXICy0LnlRkf\n5YADSt9+WjDQIEqxG28ELrgg7lREx2uOhlGs8mgpgcbo0brzJ44DlE5J6Sslq7mRThhokCePPgqM\nHRt3KsjuppuAhx+OOxXR8RpoeJ2W4p579P6XLi19G1n28svAc8/FnYq63nmn+Dr/+U+w+yyUU1JJ\ngUYmOuyqpAMWl3PP1VN+11RIWOeHPUDwmp3t1vzVrQdRL0z5v5e+EirRMcfEnQJnU6fqaaFzdMqU\naNICVNYDMnM0iFJg8eJ8BTVzwbRasiTbNz6v/WiUmoPh5xry0Ud6muXvO8uczoWwjuXChe7Lst4b\nqJWvQENErhGRySKyQkQWiMhwEdnFts5GIvKAiCwWkZUi8ryItLSts42IvCoiq0RkvojcLiIlBz0M\nNCjrttgC+MMf9OtVq+oub9ECOO+8aNMUpWJ1MEotMimnKIWBRnYEXWRizJzpvqxNm3D2mUR+b+69\nANwHoBuAgwE0ADBaRBpZ1rkbwJEATgSwP4A2AIaZhbmAYiR0sU13AGcBOBvAjSX9B2CgkVZPPVVZ\nUX25XnxRTy+6yHn5yJHRpcWNlx4RS+G3sqffgKOUawgrg6bTH/8Y7/6PPlpPt9oq3nREyVegoZQ6\nQin1pFJqhlJqOnSAsC2ALgAgIk0BnANggFJqrFJqKoD+AHqKyD65zfQFsCuA05VS05VSowAMBPBH\nESmpzggDjXS6667Cy198Ebj//mjSkgY1NcDcucCnn8adkuiVW6nTa78cXnTrpqfsT0P75Rc9+OLy\n5XGnJB0q8bwpt45GcwAKwE+5912gcyreMisopWYB+A5Aj9ys7gCmK6UWW7YzCkAzALuVkghWUMym\n446rjAGHvFIKuP76wsuzyu8orH5zLvx8dxtv7P8zWTZiBDBkCHDffXGnJB0q8cG45EBDRAS6mGSc\nUurz3OzWAH5VSq2wrb4gt8yss8BhOSzreLZ6tX7Ko/RhsUmwsnzjK7duhtv2yvnOKvGG4cRUUh44\nMN50pEWxzuayqJzmrQ8C6ABgPw/rCnTORzEF1xkwYACaNWtWa95XX1Xh88+rPGyaKP0qNTgLqxJo\nKRf9YuOqVJprr407BekSdoBRXV2N6urqWvOWx1yuVVKgISL3AzgCQC+llDU/YT6ADUWkqS1XoyXy\nuRbzAXS1bbJVbmrP6ahl0KBB2GuvvWxp8Zl4is306UCnTsDs2cDOO/PYlaJSvzO/PYHaFQsOSumC\nvJKeSAv58ce4U5AuYQeoVVVVqKqq/fA9ZcoUdOnSJdwdF+C76CQXZBwL4ECl1He2xR8BWAfgIMv6\nu0BXGB2fmzUBQEcRaWH53KEAlgP4HJQpTz8N3Hyzfj1mjJ5Onlz8c2Zdqq1Sexq0Bwrme/DaXNWt\nMmgp3xlzNKgclXje+O1H40EApwM4DcAqEWmV+2sIALlcjEcB3CUivUWkC4DHALyvlPogt5nR0AHF\nkyLSSUT6ArgJwP1KKbZMz5jTT3cuu50xw3lIZwAYNgw48MDw05Y2SgEPPVR4eVa5BRr25fb3ZmoP\nTIIYVG3dOuCww1hHjPwxI7saWf7dGn5zNC4E0BTAGABzLX/9LOsMAPAKgOct651oFiqlagAcBWA9\ndC7HEwAeB1CgPj0lxUsvufcfoFThDmpmzMi/7tAh/9o6pDMAnHRS6enz69df9Rgu9jRQsgTVE6jX\nohYvaXnsMWDUqMrqD4HK98UXcacgen770ainlNrA4e8JyzprlVKXKKVaKKWaKKVOVkottG3ne6XU\nUUqpTZRSrZRSf8kFIJRwxx4LtGrlvOyRR4D27YEvv6y77PnngX/9y/lzPXo4z4/CxRcDvXsDvXrF\nlwavvDbpzCK/dTL8bq+UyqAMTom8ycRYJxStZcuc55sciyVL6i4r1P/D5zHWzJk0SU8/+SS+NFBx\n9nJtt6KTKEZzTUMdjSFD9HfE3kuTK8sPBnYMNChwy5YBe+8NzJuXnxdnMFEpwrpwzZ+f7w0zbsUq\ne/od06ScopMk9/B49tl6unp1rMmgAhhoEBXQp0/h5SNH6hEun3zSefkHHzjPj1tY43REZfly4N13\ng99udbW3lkJR8lpXw3BrpeK2PS/7TlqgsWxZ3crCQ4c6r7t2LXDPPcHnyjzzTLDbo2xIbaDx66/A\ntGlxp6Iy2fpM+x8zqujjj+vpCy84r3fPPYEnqWTWCqoPPhhfOoJywAHBb9P0/JgGXgOJUsY4sX82\nad/LZZcBF15YOyfx4oud1733XuDyy4G33nJeXqoq9p3oWSX1P5LaQOOKK4A99og7FZXJ7eL8yCN6\numaNnqahfNg61LcZHTWp4spqTcINtdTWJH479PLCnP9JGyb+55/11EvwZIpU0vAbzarhw+NOQXRS\nG2gwNyM+L76os6KfyLU1+s9/yu+xUsS5tUoYWrYEOneuO7+SnjD8SEKgYbgFBF4HXQuijob5TJjf\nS7NmwdWLmT9f/75eeSU/z/xejzoqmH0QFZLaQKOSKtIk1U036envfx/M9mbMAP7+97rzBw0KZvvG\nokXAxx8DBx9ce745pz75RF+Ik1aXxK21j5P164GOHYH33y9/v0mri2BVaiXPIMY6seZo9OwJvPqq\n920Us2JFcPVivv1WT994Iz8vqK7sP/00mO1UskoYVoCBBpXMLQeinOzYG26oO+9Pfyp9e4XYy6cX\nLdL9fZheSc85J5z9RuGXX/RN4MYby99WknI0jFJzLIKsDPrNN/l548cDl17qfRth8jKeS1A3Nw4N\nT16kNtCg5Js6Ndr9KQW8917pQeiKFcDJJwNLl+r3WSi/DiIgT1Kg4bX5arHl5QyMZj5rL2qzBh5x\nsudi2fuI+fjjfMVtAPjqq/DTRO4qIUejnGHiY/Xee3GngIJWKIt+7Vpgo40Kf/6VV4BjjgFefjmY\nsuc0BxrFmnP6kYRAw+3/MP9nuXU0SsnR8Do/ava+My64QE9NUY+9flLbtqWnvRJuklQ+5mhQYhx/\nvPuyhg2LB5fz5+vpggXBpSmtgrwBJKGSrN+OuOzL7cr5fpLcIyjgXuT3739Hmw4ig4EGlaVJk+j2\ntf/+3p+un3kG2H134G9/A/rlhvwbMgTYa6/w0pcUr78ObLKJfv3mm0CLFvkmx6XYbLNg0hUEt8DC\n1BcKOiBxkvRAo5ALLwx2e4VGEyZvklK3J0ypLTqhZDBt96OyciWw6aaF17n+ep1NvHAh8Nln+fl/\n+IOuJJl19gqgS5boXJ7ttosnPVHyWxRSTvPWNHILDJ54AjjzzGjTQpWDORqUOT/+qIOMIC1aBHz4\nYbDbDAvHlSne34Z9vSDqaBTz/vvFR3xVSg89b8yYAcyZU3zbq1cDY8eWli4AOOus0j9LVEzqAo0V\nK9KddUnlW77ceX6YFdMOPBDo2jW87YetnKfwJD3BF2uuau9rJIycjWLrrlrl3Gvofvs539CV0ue0\nUrrb/sMOyy/r0AHYYQf9euVK9wrTAwY4j5pMlASpCzSaNQumbwBKp+pqoHlz4Icfot3vzJnR7o+c\nFcuBMON8hFl0UuxBZ5NNgBNOcF7m1JT0rrv0Of2PfwAnneS+3aZNgSuvdF6WlKa1RE5SF2gAzr1H\nUmUYP15PrQNHRaF+imozOeXsuJW/P/20ruzZtCnw3HPhpqscfgOCMHNhvOSoWrv7tjLpWrFCH6dJ\nk3SFXQC47jr37Zm+MdxGR62Xyis5VQqenpQq5olw3jzgmmtq31DuuMP9czfcUF5F0AYNSv9sEtib\nBg8frses+fvfdQdlK1cCt9ySX/7cc8F2qR0Wt+KyYsPFlyOIIOaLL/TUjBdUzODBeuoUYA8eHExX\n80RhSdFzWrLKiikeEyfq6bHH6ulFF+kbZePGwOzZ7p8rJRdszhy9zV12ycYT48SJQPfu+rXJ2m/X\nLr9cKV234LXX8k2Ck/KbK3VME7fPl1IJ1O8+x44FdttNNy9+5x3nz06bVn4/JeedV97nicKWqkCD\nyG7NGmDPPcPbfrt2+uZgnoRXrtRBR+PG4e2zXG5Njnv0yAcThrXOQE0NMHAgcNtttT+XxN4fy+0X\nI6wOu6z77d1bNymeMwfo00fPM4OQjR6tp+PGedunnwH1iJImA89pVMn23jva/TVtmvz+KIp1amYd\nbde6bk1N3SADSE6uhh9eR28Netv33lv7/bff6lwLO7eWU25GjPC3PlGSpCrQSOMFj8JVrF+CMKS5\nGeG8ecCTTzovS2LOheFWZLJokb/1i63nRaEcDVNZ2coM027lVlnUCxHg2WdL/zxR1FIVaBDF4fHH\n/T+BJtXHH7svs/aimhVhVAotFGh4HYiv3O/66qvL+zxRlBhoEBXRv3/cKYjP+PH5FhJpEsQorW4K\nBRojR5a/faKsSVVl0HIGhiIi/3r2jDsFzopdC8IsZvW77Vmzgk9DHEWGRKVKVY5G0CMPElE6lNph\nV5A5GV7S4lR0snZtcPs2Fi8OfptEYUlVoJHFMmQiCl+p/W848TvWUpg9ria5Ai+RkapAg4gqU5K6\nIPfrk0/iTkE4OLglecVAg4gyJ8yiE9LYiVhwrr46nCK2pGCgQUSZE2RRSbFtx6WcsXuCkPbxf5Lk\ntttq99ibNQw0iKhiJCFICKqu2cknB7OdUrF+CHnFQIOoghxxRNwpKE1aWp14Ye+mvFRB99nh1INp\nIZMnB7t/yi4GGkSUOWF22FXuNsJshVIOvzktY8aEkoyKleUcIgYaRJQ5SeqwKy2y+n9R/BhoEFHi\n+e2g6qOPar+352iU8/SY1Ruy2wB1ROVioEFUgjfeiDsFVEixopOsBgvlqOQxfZKARSdEVMvcuXGn\ngPwwgcW8ebXfl7MtIvKGgQYRZZZbUBBn0UlWnlyZq0deMdAgKgGfatMhjJt6ucf+p5+CSUfcJk6M\nOwXZkpUA1AkDDaISLFkSdwrIjyDH5TCBxiabBLfNpJg/P+4UUBYx0CAqwRVXlPa5dev0GBEckCoa\nYeQ8ZblCKc9LCgMDDaIINWgAbLop0LVr3CmpLFkMCsIwfHjcKahcLDohokBNmRJ3CirLypW13/vt\nl8MqyzkGl2WVAAAgAElEQVQaY8fGnQLKIgYaRBFhtnQ2ZDHAMLL8v1F8GGgQReSZZ+JOAQWJN2UK\nEotOiKhsp58edwoqDyuDEsWPgQZRBN56K+4UUFCyHGhk8X+i+DHQIIrA1Kl1573wQvTpoPLxZkxh\nYNEJEZXF6SLyz39Gnw4qX5ZzNIjCwECDKAKrVtWd98EH0aeDgpPFQCOL/xPFj4EGUQSuvz7uFFDQ\nsnhTznL2fdJl+bv3HWiISC8ReUlEfhSRGhE5xrb8sdx8699I2zqbishTIrJcRJaKyGARaVzuP0NE\nRETJUkqORmMAHwP4IwC3mP41AK0AtM79VdmWPw2gPYCDABwJYH8AD5WQFqLEYy+g2ZTFHI1vv407\nBZRF9f1+QCn1OoDXAUDENbNnrVJqkdMCEdkVQF8AXZRSU3PzLgHwqohcoZTi+IGUKS++6L5s3Tqg\nvu9fISVBFgONDz+MOwWVi0Un/vUWkQUiMlNEHhSRzSzLegBYaoKMnDehc0e6hZQeotjYx9mw+uyz\n6NJBwcpioEEUhjCepV4DMAzANwB2AnArgJEi0kMppaCLUhZaP6CUWi8iP+WWEWXKoEHuy9avjy4d\nRERxCDzQUEo9a3n7mYhMB/AVgN4A3inwUYF7nY+cAQCa2eZVoW4VEKJ0WL067hRQqbKao7FgAdCq\nVdypqDxBFZ1UV1ejurq61rzly5cHs/EShV46rJT6RkQWA2gLHWjMB9DSuo6IbABgUwALCm9tEIC9\nQkknkV9jxwIHHFDeNhhoUNIsX1480LDdxyhBqqqqUFVV++F7ypQp6NKlS0wpiqAfDRHZGsDmAObl\nZk0A0FxEOltWOwg6R2NS2OkhCsqIEcXXcXrq3X33/Ou+fYFffgkuTUTl8pJT8+ij4aeDsqOUfjQa\ni8geIrJnbtaOuffb5JbdLiLdRGQ7ETkIwAgAswGMAgCl1Mzc60dEpKuI9ARwH4BqtjihNPGS1blm\nTd15zz2Xf11TA7z/fnBpIiqXl0Ajq8VGcWKrk9r2BjAVwEfQdSr+D8AUAH8HsB5AJwAvApgF4BEA\nHwDYXyn1m2UbpwGYCd3a5BUA7wK4oLR/gSgebheGBQuAJUvcP9fMVs2IF21KEgYaFLRS+tEYi8IB\nymEetrEMwBl+902UJG6BRuvWellNTd11+vevG2gQJYmXIOKdQtX6iWw41glRCMzF2h5obLcdsPHG\nzusSJQHPx3iw6ISI6ih2YXBafsopdecVu7Dzwk9RqqmJOwWUNQw0iEJkDzacgo8vv4wmLUReFOtE\njoEv+cVAgyhE9ouyU6BxySXRpIXIi19/BT76yD2g+OijaNNTKVh0QkShWlCkqzqiqEyaBOy9N/DM\nM87L162LNj2Ufgw0iCLk9tTCTrsoKUzQO2eO8/IsP3lTOBhoEAXojTdqv/dTnv273+mL+I47AmvX\nBpsuIq9uuUVPly6NNx2UHQw0iErk9GR32mm131t7AS1m6FA9/eYb4Icf8vNZ+Y7iMGGC83zmaJBf\nDDSIArR4ce33Z55Z+73bRdr+9MhycIqbW4DLQCN4Wf9OGWgQJUDv3rXfF2tiSBQ2t3Mw6zdFCh4D\nDaIINW2qp9tvX3v+ypW13zPQoLjZc+cMBhrkFwMNohL5veBuvTXQsqV+3bBh4XVZdEJxcws0Pv00\n2nRUgqwHbww0iCJyxBH51507F1533Lhw00JUzLJlzvMffzzSZFAGMNAgisjf/pZ/XewJ5tJL86/Z\n6oSSZMmSuFNAacNAg6hEP//sb/2ttgonHURRmj497hRkD4tOiMjRgw+W/tnu3YNLBxFRkjHQIIrB\nxRfHnQKi4ubO1dPvv9dP3RxpmErBQIMoBlnPKqVsGD9eT99/X0+feCK+tGRZ1q8HDDSIiMiRqYhs\nBlq76ab40kLpxUCDKOHY6oTiYjqOu/zyeNNB6cZAg4iIHDHIjQaLToiIqCLV1MSdAsoCBhpEZXjp\npbhTQBQejrlDQagfdwKI0uzYY8PNXh43DmjRIrztExXCHI1oZL3ohIEGUUIpBfTqFXcqqJIxR4OC\nwKITooS6/fa4U0CVjjkaFAQGGkQJNXp03CmgSsdAIxpZLzphoEGUUG+/HXcKqNKx6ISCwECDiIgc\nrV8PrFsXdyoo7RhoEEVgm23iTgGRf9OmAY8+Gncqso9FJ0QUCg4VT0m3xx7A1Klxp4LSjoEGUUzG\njwf+/Oe4U0Hkbvp0YPHiuFNBacd+NIgC8ttv/tbPenYppd/gwcBOO8WdiuzL+rWAORpEAfn+e/dl\nHJyK0qimBvjii7hTQWnHQIMoIKtW+f8MAxAiyjoGGkQBOflk92VuAcXhh4eTFiJKDxadEJEns2a5\nL2vVynn+wQeHkxYioqRgoEEUgfbt404BEVE8GGgQRYB1MShrdt017hRkB4tOiIiIbPbbL+4UUFow\n0CAKwYEH1n5/6qnxpIOoFNOmxZ0CyhJ22EUUgrffzmeHstiEsubOO4GZM+NORXaw6ISIiCqeNVcu\n6zdGChYDDSIiqsUpkLjootrLGWyQVww0iAJWqOMuLy6+OJh0EJXi+OOdg4gNNsi/btSIRYJBynrQ\nxkCDKGB77FHe56++Oph0EJXigQeAbbapO79du/xrdjQXrKwHbQw0iALWsaO/9Rctyr9WCthqq2DT\nQ+RX06Z157VoAfTsqV9vv32kyaGUY6BBFLBDD9XT7bbztn6LFroG/88/h5cmIr9MUGFlffLOenZ/\nlLL+XTLQICrTypW135uy7AkTgHff9baNdu2Axo2DTRdROdq2dV+W9RsjBYuBBlGZHnyw9ntzEd5y\nS6BXr+jTQxSEjTbKvzYtTkyOBgMN8oOBBlGZ7BfdIC7CZ59d/jaIytG/f/71oEF6ykCDSuE70BCR\nXiLykoj8KCI1InKMwzo3ishcEflFRN4Qkba25ZuKyFMislxElorIYBFhxjGlkv2iWy+A8P2xx8rf\nBlE5unfPvzbndN++esp+NMiPUi6JjQF8DOCPAOo0yhGRvwC4GMAFAPYBsArAKBHZ0LLa0wDaAzgI\nwJEA9gfwUAlpIYpdGDkaRHFp0CD/ul8/PTX1jv72N2DZsujTROnme6wTpdTrAF4HABHHS+plAG5S\nSr2cW+dMAAsAHAfgWRFpD6AvgC5Kqam5dS4B8KqIXKGUml/Sf0IUEwYWlBVvvqlbQRmPPgr84Q/5\nHI169YBmzfTrrPf9QMEJtI6GiOwAoDWAt8w8pdQKAJMA9MjN6g5gqQkyct6Ezh3pFmR6iKLy22/h\nbbtz5/C2TWTceitw0EG1522yCXDAAfGkh7Ij6NFbW0MHDAts8xfklpl1FloXKqXWi8hPlnWIUmPY\nsGDqZdjdfTfw/PO6P4OpU4uvT1SOCy/0tz5z8oJjbyKfNVENEy9wqM/hf50BAJrZ5lXl/ojiMWEC\ncMghwW/3ssv03zXXBL9tIrvmzeNOAQWhuroa1dXVteYtX748ptRoQQca86EDhlaonavREsBUyzot\nrR8SkQ0AbIq6OSE2gwDsFUxKiQL02WfhbZtPjkTkVVVVFaqqaj98T5kyBV26dIkpRQHX0VBKfQMd\nSPyvpE9EmkLXvRifmzUBQHMRsZY8HwQdoEwKMj1EURk2LLxth1EsQ0QUFd85Grn+LtpCBwYAsKOI\n7AHgJ6XU9wDuBnCdiHwJYA6AmwD8AOBFAFBKzRSRUQAeEZGLAGwI4D4A1WxxQlQXAw1KIua0kVel\nFJ3sDeAd6PoUCsD/5eYPAXCOUup2EdkYul+M5gDeA3C4UupXyzZOA3A/dGuTGgDPQzeLJSIbBhpE\nlGal9KMxFkWKXJRSNwC4ocDyZQDO8LtvokrEJ0ciSjM+KxElHAMNIkozBhpEATruuOC3yaITIkoz\nXsKIArTDDsFvk4EGEaUZL2FEAfLbu6IXLDohojRjoEEUoB13DH6bzNEgojTjJYwoQGY47SAx0KAk\nYk4becVLGFGJZs6sOy+Mi+/48cXXISJKKgYaRD48/3z+dbt20eQ2jBgR/j6IiMLCQINS7Xe/C38f\nPXrkXx9/fO1lffqEv//f/z78fRARhYWBBqXaPfeEv4+xY92XRZGjEeOgi0REZWOgQVRA585Agwbu\ny7t1Cz8NrHRHRGnGQIOogM03r/3eftO/9trw08BAg4jSjIEGZcbJJwe/zeuuK7zc2pz1oYeC3z8Q\nfqBx003hbp9KN20acAaHn6SUY6BBmWGttBmURo3qznvlFeC22/RraxAQVqXNsAON7bYLd/tUuo4d\ngfvuizsVzpjTRl4x0CAqwORYPPVUft6RRwJXXaVfWy+2YXTWZd9HGJQKd/tUnubN404BUXkYaBAV\n0LKlnp52mr4h22/6UTzVhb2Pmpr86/feC3dfRFR5GGgQuTj7bGCbbQqvk4VAw1R4veMOZocHYfjw\n8LbdqlV42yYKCwMNIhe77lp8nbQHGn36AEcdpXs8HTCAxShB2Gij4Ld53HF6ai3CixuDUvKKgQYF\n6rLL4k5B9K6/Hvjii/C2H/QF/eqr869ffFFv/8QTw6tjQv7svnvdeVtvraesr0FpxECDAnX33dHu\nb5NNwtu216f7G24A2rYNLx1BBxq33qqnm29e9/vjU2r83nmn7jzT1X6Y55lfzP0ir+rHnQCichTq\ntTMrwrr5O22XN494/f3vQIsWdefvsw+PDaUXczSI6H94M4sXK3tSFqU20HjjjWRlI1J8pk8Hvv02\n7lSEJ6yB21hMkiwvvwycd148+y5lv/ag9K23gkkLZU8qA40XXgAOPhjYcMO4U0JJsPvuwLbbBru9\nJGFAkC1duwL77Vd3/mGHhRNU9uxZfJ0gBgfs06f8bVA2pTLQOP74uFNATnr1inZ/Q4YEv81x45I3\n9gfraKRL165Aw4buy6urnQONsJx7bvF1Dj00/HRQ5UploGHwSS852rcH3n1Xv+7XL/z9ff45cOaZ\nzsueeab07Vqf/rJ40+3cOf/6lFPiS0eWtWgBrF7tvnynnZznez3fWrf2n6ZiinVM5ySLvw8KR6oC\njc02izsF5KZ9+7hTEJykBbBBZqebba1eHX1T5ErUsCFw1lnBbvO774DHH/e+fljnMwMN8ipVgUYl\nNGVMqzCKMfwy50fWOp4K8kZhAo2GDZ0DGHPzcHvqJn/q1QP+9S//n5s1C/jxR+dlDRok41rIOnLk\nVaoCDfsFd+3aeNJBdVk7forrSefcc4Ebb8x310x1ec0dCbJybaVr1Mj/Z3bZBWjTJpj9FwtU//3v\n0rZ7882lfY4qT6oCDbsvv4w7BRSldu0KL2/YEBg4EKifsW7owsjRcNO5sy6vP+ec4PZJhW2/vf/P\nBHlOHHNMaZ9r1qzuvL33Li8tlE2pDjQomfbaK5ztdukSznaTLspAo2lTXQfABHVhDBBWSYoFbG+/\nrQezA8LrL8UpILBq2rT0bduLcD74QP8RWTHQoMDtsUfpny3UtNR6ww1zjBPTO2NSig+CDDT89hGS\ntIqxaVJTA9x7b/H1LrlErxtW3SLrb6Wmpu7yxo1L33YpxUJUeRhoUKJ4ubEdckhpzfG86t4dmDwZ\nOO208PbhR5A3+zvu8Lbe+vV6mrViqLCceGLdeSLux87coOvXL7yeF7NnA/PmAXvu6bzcmusQReDI\n4JTsUh1oMJrOlhdf9LZeWEUoV1yRf921a3IumH7TceCBwCefOC/z2lLAPPky0PCmUSPdFb7Xc/jK\nK4FBg4LpuGvnnXXfGiYnsVOn2stNR3pmqPmwJeV3Q8mRqkDDPGUZLD9OBnuvgj176qerTz/1t52d\nd3buc+Df/9YX0WOPLT2NXiSlqMTO74X7yCPr3mzOOgvYf3/vgQZzNPzbfXfvFSsbNQIuv7z0m3Lf\nvu7Ljjqq9nuzD/NgdsIJwK67lrZfolKkKtBYty7uFJDdwIHAqFG15zVtCkydWtqN2+mp64ILgI8/\nzvfa6aW75F128b/vpAriCbFbN2DsWO/bMv1oHH54+fuuBFE3qS6l80LTFfmwYXWDkVI5nU/M0SC7\nVD2v2HM0KF5B95dRrPZ7mzbe95mlXgvjuHCb73rIEODJJ6Pff5ok5VwrlI6w0ui0XQYaZMccDQqN\n3+Z6W20V3L6TcvEPgt8Ld5BPmbxpFDZ0qLf1Bg0KNx1uxo0rvPy//40mHVTZGGhQaMppNhemCRN0\nq5K08HuzN0HWZ58BLVuWtg2D3UwX5nWAsx13DDcdbooNEb/lluVtn0Un5EWqik7uvhuYNi3/fvhw\n4KGHyhutk0qz8cZxp6CwIUP0GBMHHAAsWACsXAksXKh7D+3e3fkzVVXRptErrxfuBg2A337Lv+/Q\nAbj9duDss0vfd9KPc9x69PC23gEH6OkOOwS370ce0ed2KS67TLdMYk+eFIVUBRrdugEXXZR/37u3\nburIQCN6Dz7ob/0+fXQviFHZd1/959UVV+jhvZPIS6Cx2Wa6dU6/frXnl1uEtNdeumfJ5cvL205W\neQ3ETP2jgQOD27ep3GnnpcO8rbcGRo8OLi1WzNEgu1QVnTjhSR0Pv92Me81ijsOGG3rvyCoOXs7x\nYsej1N/J1lsDS5eyCKVcIjro698/vH107qynHTuGtw+iUqQ+0KB4+L3xbLpp4eXz55eelnKFNcZE\nlAYMyNeJadIkPz+ISrEizl1XU7Jcdhnw9dfxB/U8V8gu9ZfYLNwk0ubpp4uPpGrMng289x5w222F\ni7jM+CJxSHqumDnH3bqYBvQ4GYcfruum/P73dZeX+z/y5pF8IsHWASmVtZ4QEZCBQCOsgYjInZ9K\nkzvvrLtZbtwYOOWU/Pynnw4+XaVKeqBh0leoZ1QzZsaZZ9b+TZx0kj5e1u++FFlqLhyEoUN1UJdE\nzZvHu3+2DiQ7BhrkizVbvhxVVcnpvTMtgUYhbr+DJk10UFfOUOAAAw0A2G23/OvTT9dBXRKJ6OEZ\n7rwznv2zY0WyS1WrEycMNKLVpk352zDBysEH66KVuCilL8ppKX4rdLMPsrMzcpaW8wQA1qyJb98s\nOiG7FP10nCX9aTRrZs0q7/PLlwNz5+rX99yjp1tsUXudhQuBFSvK248fSSjXLsTc4NwCjUMO0UVU\nFC4+1HjDohOyS32OBqWLNQu/fn3dRfL229dexx54hOmdd3THVklmgmm3Cpn274+C1aaNDo7TlKMR\nFacHvbVro09H2h19dNwpCBcDDfLE9APw9dfBbrdYF8lh69073v0HgTfAcJmcDH7PdTnlsnkZXZlq\n89LJWprxp0OebLyxvqgkvZghi8zF3K2YkDfAYJlKnqbrdvP98nv2hp27+Zf15uOB/3RE5HoRqbH9\nfW5ZvpGIPCAii0VkpYg8LyItg04HBYvl0/FjoBGOTp30tGtXPTXfsz0ng7+BulhHLhhZ/x7DukR9\nCqAVgNa5v/0sy+4GcCSAEwHsD6ANgGEhpYMCEmXlTKqtWNPSrF+k4mLPyeD3XBe/k2DE3Ztr2MKq\no7FOKbXIPlNEmgI4B8CpSqmxuXn9AcwQkX2UUikavJsoGiw6CZfb92sPNPg918VAIxjWwUKzKKyf\nzs4i8qOIfCUiQ0Vkm9z8LtDBzVtmRaXULADfAfA44DJRZWGgES6379e8txelUHHPPRd3CtLhqquA\nadOyf26FcYmaCOBsAH0BXAhgBwDvikhj6GKUX5VS9oz4BblllFCmHJuit/feQKNGwKmnOi+PItCI\n+kIYxZNy+/aFl9vraPDp3buTToo7Belw4YWVMdpu4EUnSqlRlrefishkAN8C6AfArb86AVC0k+MB\nAwagWbNmteZVVVUB8DH4BpWkQYO4U1C5Nt8c+OUX9+X77x9+GurVC7dradNXhWGaU0fBbT9ulUIp\nj8FX8lRXV6O6urrWvOXLl8eUGi30fjSUUstFZDaAtgDeBLChiDS15Wq0hM7VKGjQoEHYa6+96sw/\n7bSgUktuPvoo7hSQkyefLDzYWlDCvsnac0ziuIEVq6OR9eztUnTsCIwZw066/Hj7baBPH/16o42C\n335VVVXuATxvypQp6NKlS/A78yj0QENENgGwE4AhAD4CsA7AQQCG55bvAmBbABPCTgtR1jRuHM1+\nwg407NuPItAw+7DX0TDv2eqkuBEjdCd+7DvDm3ffBXr1AsaO1X1nBDF2VBoEHmiIyB0AXoYuLtkK\nwN+hg4tnlFIrRORRAHeJyFIAKwHcC+B9tjhJti23jH6fkycD338f/X7TJKqb3+rV4Wx3gw10kUyU\ngUa9evoibw8snNYDdFf55KxZM6Bz57hTkR69eulpFMWdSRLGc8rWAJ4GMBPAMwAWAeiulFqSWz4A\nwCsAngcwBsBc6D41KKG6dAEeeyz6/XbtCpxwQvT7pbqyWHRSbB/mfzZP60oBxxwDPPpouOmibDnv\nPD29+up40xGnMCqDFqyZqZRaC+CS3B+lwIcfxp0CchNVjsallwJ33x3c9uyVPeMoOrFza95qytHX\nrwdefDHaNFH6Pfyw/qtkrEdNREXddRfw/vvBbc/eR4VbjkmYOSnF6miY9yZHI+vjURCFJROBxldf\nAddeG3cqiLJLJNibfrFAo1gAEsS+Dbc6Gma+ydGIqrktpduf/xx3CpInE4HGjjvqvgaIKB3sN3u3\nOhpJCjSYo5EuO+8c/T6bNAE6dNCv+/XTFdopI4EGwKcNqkxpbXJpDyDsgYZZHsbv2p6b4vYdmsCC\ngUZ6bLNN/rXfcyeIJrrV1fn9HnJIfkTgSsdAgyjF0tqJlD3QcAs8wuiN1K3Yxrw3AYW9MigDjXRx\nuifstJOe9utXd9nIkf730b177fe77Va3HxZioEGUamm9mJmbuOna3q0XzjBu7sUGTzOYo5FcrVo5\nz7ceQ6d7gmk1ZD2WLVrUXsdPfT/rdpQCtt8e2HZb/X677bxvJ+tSepmqK8xxGIiSKspAI8iOq5z6\nqLC+DzOnxvwfbgGGPWfDBBqbbRZemih45pwaPDg/z5xX1iCk2OjIhTgFn4ceCkyfDhx0kP/tZRUD\nDaIUi7LoJMhAw1zUGzbUU3Oxj2LwPrfvzJ6rYq4pDRoAQ4cCTzwRftrIG3O+XH557flOwUL//vnX\nTjllbs2b/aTDbvfdvW+jEmSmc10GGsG78UZg003jTgVZXXkl0K1bfhjuffeNbt9BBhrmgm8CC3Ph\nj2LMDLcWLvapuabUqwecfnr46SL/2rXT0/r1gXXrnNepV09XzHzjjbq5VUDdOhV+ishqaoDbbgOa\nNvWX7kqTmUCD5afBu/RSPZYBJcftt+dfN2wIbLxxdPsOMrfBBBQmeDG/3yhyNOwtWkzgYa8cagKN\ntFa4zTJz7Mz0kUdq51xYlwF1g0inopNCgcYBB+iB0OxEgKuu8pf2SsSiE3LFC2yyRd20NcgcDRNo\n2G/6UQxgZt+nvdWJPXs9rRVus6ZQEOpU36ZQF/fWYMJ+Pvj5XUWZo5hmmfkJuWWbUekYaCRbmgMN\nsy0ztbc2CZP9ydVtlFZTCZTFh8lQrEWJnXWdli311KkyqFtlYLdtWd11V/F0UIYCDRadBKd9e+D5\n54FGjeJOCRWS5kDDpN0eaESRe+DWj4ZJi7mp9OypK4BewuEfE8seALgFI/ffDzz3HNC8uX5vvV94\nuXfY93P55cC0adEU9WVBZuposOgkOM2aASeeGHcqKGnCKNYwT5j2AGPx4uD35cbs29w0TO7oBhsA\nVQXHoqa4FSrusAYHTZroCtRKAeefD1xxBXDMMbrJ8vnn113fzp7T1qUL0LFjeWmvJJnJ0WCgQZUm\njTkapjmr4VYRE9BjGFkHqNp9d+Dii0vfd7ERYk1aDj5YT3v0KH1fFC63nAzrb8Ipp0IEeOghPQ7K\nhRfqHkKvv16fl2aMkhNOyK9/0UW6t0/mXJQnM4EGi06IwhVE01N7L5vmxnDggXp67LH5db/6Crjz\nTmDLLYGjj9adIN13n17Wpo3/fbs1Y7UX23TsqG9k1nEzKH5e6k6YIHGDDYDDDvO23QEDgNWrgS22\n0NvbZ5/8sgcfBD79tG6gkdYxhuKSmaITVlwMzg47xJ0C8iLqi10QdXbslfGUAhYs0KMv//nPujvo\nc8+t3X3zJ5/Ubsa7bJnOXdlkE3/7rlevds6nvdXJllvqaZRNhsndTTcBAwfm3zvVv7AWnSxcqCvu\n3nmnfr/RRsA//1n6/q3dnNtz8xho+JOZQCOKZnFZNmgQ0Ls3MHcusP/+caeGvIj6YhdEMO+U5W1a\nBJgLe/v2tdfZYova703fLp9+qrenlP79m6xvN/aiE3uOxt/+BvTpE8/w4lSXnz58RPLnSZMm+fn2\nc8erceP0uCUGA43yZOb2zECjPB06AHvuqf8oHaK+2IkAN9ygizSefLK0bdTUALfeChx1lG7ZVE6P\nm7vt5m99e6Bh77CrYUPguONKTw+FyylH45xzgC++CL7yes+etd/fdx/Qtm2+wzxrPQ4qLjN1NOxl\naPXqcRAkPxiokRfXXw/sumtpn91qK52VffXVumLnDTcEm3tw9tnA8ce7L7f3CvnXv+qn3z/9SV8v\n2Jw7WczxuuCC/Lzf/a72Tb5xY+Dee+tWMg5amza6q/FmzXSQbeoakTeZCTS6dKn9fv164Oef40lL\nmpinOTO0MaVHXNm3xYLSZs3qXvj79gV++EHX9A/LY48BL7yQD4S6d9fTCy7QAcVFF+mA4phj9PxT\nTgFWrACOPFJfL1jPKx7FcpGslXefeAIYNszfwGdBWrYMOOOMePadZpl5jj36aGDevHyFLgD49df4\n0pNkBx8MPPusvmE0bKh/PKWWZVJ8khpozJunp6ZS5cqV0T4BfvyxDhzq1wd++03v+x//0AHQNdfo\n6R13RJceKsytxaD9/DYDqJnXkyaFlyYKVmYCDRGgdeu4U5F877+v62OYHvIABhlpFVegUezJ3xRB\nTJ+ucxL8tg4plzWoMU1yTTHq5pvrKUfbDN+0aUCnTsXXq18fmDhRX5PGjQNef13X37E2O544UdeR\nMHxFVJIAAAtzSURBVEaOBGbPDifdFLzMBBpOjjwSePXVuFMRj4EDdfMwALj2Wt2SZPZsDgKUJUkJ\nNMaN07kIe+wBfPddfv7uu0ebLkqWYq2AjAceyD8ktmunWxMBumL6ddfpOjT28WY22yxfNEbJl+lA\n49prgfHjdZO1YcPiTk00evQAzjxTl4XPnaufLm+5RS/r2zfetFFw2rfXxQBxOOooXR9i222BESOA\nbt3q1tIn8jpujT0nun9/4OGHdaDC3lmzIXOBxi67AN9+q1/vuy/w00/6ddrbPYsUrgBVr54u6xw/\nPj9v8ODw00Xx+Pzz+Pa9/fbARx/Ft39KBy/XXKfeVzt1AlatCj49FJ/MtDoxPvtMVz7LktWr9UBP\nv/zivPyXX3SltzVrok0XEVEhq1cXXv7119Gkg+KVuUCjfv10D4DzwAP5zpD699fdLzdsmG/nP2sW\n8OOPwJgxOufmq6/0/Hr12LabiJKlYUPd5NgN+++pDDzMCfDAA8BOOwEffKDb/NerpyvVXXJJ7e50\nAV00BJQ2qBQRUdRK7eCNsoOBRgKcfrpu22+trHnttfGlh4goKHF1rkXJkbmikzQxvSeG3X0uEVFc\n3DrkuuSSaNNB8amYHI0mTZJVSXT9+nxLEq/NwIiI0sZe/GukvSUgeVcxt7g774xv33ffDbz5pn79\nu98BM2fq4EKEQQYRZdt22+n6Z3YMNCpHxeRoRN0S5YwzdKuQ997THdL06aNHGTz7bPcIn4goi/be\nu+48BhqVo2ICjaOP1l3afvxxNPt78kk9uNQRRwCHHKJ/VCyTJCLSGGhUjorJuG/RApg6Nfz9HH54\n/vWWW+p9mgGdiIiIKk3F5GhEgc24iIi8YY5G5aiYHI0wvf46MH9+3KkgIkq+5s31dJNN4k0HRYeB\nRpkefhg49FCgVau4U0JElFxPPKGnRxyhr5txjT5M0WPRSYkuvhg48kjgsMPiTgkRUfJVVQHDhgE3\n3ADsvHPcqaEoMdDwad999VDs990Xd0qIiNKjfn1gxIi4U0FxYKDhAyt7EhER+VNxdTSWLNFDrxMR\nEVH4Ki7Q2GwzoFMnoLoamD0bGDWq+GeGDo2mDw4iIqKsqdiik1NP1dOdd9Y1oD/8UE+ddO4MdOgQ\nXdqIiIiyouJyNJycdx5w+un59y1a1F6+9dbRpoeIiCgrGGjkbLWVnlZXA4sW6df9+ukKoE2bxpcu\nIiKiNKvYohO7nXYC5s7V45MAOthggEFERFQeBhoWJsgA6hafEBERkX8sOiEiIqLQMNCgWFRXV8ed\nBAoQj2f28JhSUGINNETkjyLyjYisFpGJItI1zvRQdHgRyxYez+zhMaWgxBZoiMgpAP4PwPUAOgP4\nBMAoEWHtCCIiooyIM0djAICHlFJPKKVmArgQwC8AzokxTURERBSgWAINEWkAoAuAt8w8pZQC8CaA\nHnGkiYiIiIIXV/PWFgA2ALDANn8BgHYO6zcEgBkzZoScLIrK8uXLMWXKlLiTQQHh8cweHtPssNw7\nG8axf1ExjH0uIlsC+BFAD6XUJMv82wHsp5Ta17b+aQCeijaVREREmXK6UurpqHcaV47GYgDrAbSy\nzW+JurkcADAKwOkA5gBYE2rKiIiIsqUhgO2h76WRiyVHAwBEZCKASUqpy3LvBcB3AO5VSt0RS6KI\niIgoUHF2QX4XgCEi8hGAydCtUDYG8HiMaSIiIqIAxRZoKKWezfWZcSN0EcrHAPoqpRbFlSYiIiIK\nVmxFJ0RERJR9HOuEiIiIQsNAg4iIiEKT+ECDA68lk4hcLyI1tr/PLcs3EpEHRGSxiKwUkedFpKVt\nG9uIyKsiskpE5ovI7SJSz7ZObxH5SETWiMhsETkrqv8xy0Skl4i8JCI/5o7dMQ7r3Cgic0XkFxF5\nQ0Ta2pZvKiJPichyEVkqIoNFpLFtnU4i8m7u9/utiFzpsJ+TRWRGbp1PROTw4P/jbCt2PEXkMYff\n60jbOjyeCSEi14jIZBFZISILRGS4iOxiWyeya2y59+FEBxoceC3xPoWuyNs697efZdndAI4EcCKA\n/QG0ATDMLMyd7COhKyR3B3AWgLOhKwebdbYH8Ap0V/V7ALgHwGAROSScf6eiNIaugP1HAHUqaonI\nXwBcDOACAPsAWAX929vQstrTANoDOAj6WO8P4CHLNppAt9v/BsBeAK4EcIOInGtZp0duO48A2BPA\nCAAjRKRDUP9ohSh4PHNeQ+3fa5VtOY9ncvQCcB+AbgAOBtAAwGgRaWRZJ5JrbCD3YaVUYv8ATARw\nj+W9APgBwFVxp63S/3In3RSXZU0BrAVwvGVeOwA1APbJvT8cwG8AWljWuQDAUgD1c+9vAzDNtu1q\nACPj/v+z9Jc7LsfY5s0FMMB2TFcD6Jd73z73uc6WdfoCWAegde79RdCd89W3rHMrgM8t758B8JJt\n3xMAPBj395LWP5fj+RiAFwp8Zlcez+T+QQ/bUQPdc3ak19gg7sOJzdEQDryWBjvnsmq/EpGhIrJN\nbn4X6CjaeuxmQXfIZo5ddwDTlVKLLdsbBaAZgN0s67xp2+co8PiHSkR2gH7itR6/FQAmofbxW6qU\nmmr56JvQT9PdLOu8q5RaZ1lnFIB2ItIs974HeIyj0juXDT9TRB4Ukc0sy3qAxzPJmkMfi59y7yO5\nxgZ1H05soIHCA6+1jj45ZDMROhuuL4ALAewA4N1cmW5rAL/mbk5W1mPXGs7HFh7WaSoiG5X7D5Cr\n1tAXtUK/vdYAFloXKqXWQ18IgzjG/I0H6zUAZwLoA+AqAAcAGCkiklvO45lQuWN0N4BxSilTDy6q\na2wg9+E4ewYtlcC9DJIiopSy9pn/qYhMBvAtgH5wH4/G67ErtI54WIfC4eX4FVtHPK7D4xsgpdSz\nlrefich0AF8B6A3gnQIf5fGM34MAOqB2HTg3UV1jfR3TJOdo+B14jWKklFoOYDaAtgDmA9hQRJra\nVrMeu/moe2xbWZa5rdMSwAql1K9BpJsczYe+kBT67c3Pvf8fEdkAwKYofvysuSVu6/A3HiKl1DfQ\n11jTkojHM4FE5H4ARwDorZSaa1kU1TU2kPtwYgMNpdRvAD6CrgEN4H9ZSAcBGB9XusiZiGwCYCfo\nSoQfQVcisx67XQBsi/yxmwCgo63m8qEAlgOYYVnnINR2aG4+hSR3E5qP2sevKXRZvfX4NReRzpaP\nHgQdoEy2rLN/7oZlHApgVi4wNevYj/Eh4DEOlYhsDWBzAPNys3g8EyYXZBwL4ECl1He2xZFcYwO7\nD8ddm7ZITdt+0DXdz4SuFf0QgCUAtog7bZX+B+AO6CZV2wHYF8Ab0BHu5rnlD0I3g+sNXZnofQDv\nWT5fD7qZ1GsAOkHX9VgA4CbLOtsD+Bm6ZnQ7AH8A8CuAg+P+/9P+B90ccg/oJog1AC7Pvd8mt/yq\n3G/taAAdoZspfgFgQ8s2RgL4EEBXAD0BzALwpGV5U+jAcwh01u8pueP5e8s6PXLH9E+5Y3wDdNFb\nh7i/ozT9FTqeuWW3QweK20HfJD6Evtk04PFM3l/u+rkUuplrK8tfQ9s6oV9jEcB9OPYv1MMX/gcA\nc3L/6AQAe8edJv79rwnUD7nj8h102/kdLMs3gm4HvhjASgDPAWhp28Y20G24f879AG4DUM+2zgHQ\nEfVq6Bvd7+L+37Pwl/tea6CzRa1//7Gsc0PuxvILdE30trZtNAcwFPoJaSl03wkb29bpCGBsbhvf\nAbjCIS0nApiZO8bToAdXjP07StNfoeMJoCGA16FzqdYA+BrAv+w3Ch7P5Py5HMv1AM60rBPZNRZl\n3oc5qBoRERGFJrF1NIiIiCj9GGgQERFRaBhoEBERUWgYaBAREVFoGGgQERFRaBhoEBERUWgYaBAR\nEVFoGGgQERFRaBhoEBERUWgYaBAREVFoGGgQERFRaP4fOKY1VKGBWnYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f51fb61c490>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(wav_tensor.numpy()[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "model = WaveNet().cuda()\n",
    "model.load_state_dict(torch.load('model.pth'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0\n",
      "16000\n",
      "32000\n",
      "48000\n",
      "64000\n",
      "80000\n",
      "96000\n",
      "112000\n",
      "128000\n",
      "144000\n",
      "160000\n",
      "176000\n",
      "192000\n",
      "208000\n",
      "224000\n",
      "240000\n",
      "256000\n",
      "272000\n",
      "288000\n",
      "304000\n"
     ]
    }
   ],
   "source": [
    "recp_field=5116\n",
    "sample_len = 16000*20\n",
    "\n",
    "sample = Variable(wav_tensor[:,:recp_field]).cuda()\n",
    "for i in range(sample_len):\n",
    "    logits = model(sample[:,-5116:])\n",
    "    m = torch.distributions.Categorical(F.softmax(logits,dim=1).view(-1))\n",
    "    new = m.sample()\n",
    "    sample = torch.cat((sample,new),dim=1)\n",
    "    \n",
    "    if i % 16000 == 0:\n",
    "        print i"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x7f51fb03ed10>]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAh8AAAFkCAYAAACAUFlOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAPYQAAD2EBqD+naQAAIABJREFUeJzt3Xe8FNX5P/DPg6AgSrEA9hIs2BULWBBLFHtiv+I3tkSN\nWIIliYmJLbH+7C3GLirGaBIbihgLVlSwoIK9gthQVLAB5/fH2cnOnTu7O+WcOVM+79frvvbe3dmZ\nZ+fOzjxzqiilQERERJSVTq4DICIiomph8kFERESZYvJBREREmWLyQURERJli8kFERESZYvJBRERE\nmWLyQURERJli8kFERESZYvJBREREmWLyQURERJmKlXyIyOEi8qKIzKr9PCkiw3yvLyQil4nIZyLy\ntYjcLiJ9AutYTkTuFZHZIjJDRM4RESZBREREFRH3ov8BgN8BGFj7eQjAnSIyoPb6hQB2ArAHgCEA\nlgZwh/fmWpIxBkBnAIMAHADgQACnJf4EREREVCiSdmI5EfkcwPHQScanAPZVSv279tpqAKYAGKSU\nekZEdgBwF4CllFKf1ZY5DMBZAJZUSs1NFQwRERHlXuLqDhHpJCL7AlgYwFPQJSGdAfzXW0Yp9RqA\n9wEMrj01CMBkL/GoGQugJ4A1k8ZCRERExdE57htEZC3oZKMrgK8B/FwpNVVE1gfwg1Lqq8BbPgbQ\nr/Z7v9rfwde9115ssM3FAWwP4F0A38WNmYiIqMK6AlgRwFil1OeOYwGQIPkAMBXAugB6QbftuFFE\nhjRZXgBEqdtptsz2AG6OHCEREREFDQdwi+sggATJR61dxtu1PyeJyMYAjgFwG4AFRaRHoPSjD+ql\nGzMAbBRYZd/aY7BExO9dALjpppswYMCAJouV38iRI3HBBRe4DiMXuC807oc67guN+6GO+wKYMmUK\n9t9/f6B2Lc2DJCUfQZ0ALARgIoC5ALYB4DU4XRXA8gCerC37FIA/iMgSvnYf2wGYBeDVJtv4DgAG\nDBiADTbYwEDIxdWzZ8/K7wMP94XG/VDHfaFxP9RxX7STm2YLsZIPEfkrgPugu9wuCl2EsyWA7ZRS\nX4nINQDOF5EvoNuDXAzgCaXUs7VVPACdZIwSkd8BWArA6QAuVUr9aOIDERERUb7FLfnoC+BG6KRh\nFoCXoBOPh2qvjwQwD8Dt0KUh9wMY4b1ZKTVfRHYGcAV0achsANcDODn5RyAiIqIiiZV8KKV+2eL1\n7wEcVftptMwHAHaOs10iIiIqDw5rXjBtbW2uQ8gN7guN+6GO+0Ljfqjjvsin1COcZkFENgAwceLE\niWw4REREFMOkSZMwcOBAABiolJrkOh6AJR9ERESUMSYfRERElCkmH0RERJQpJh9ERESUKSYfRERE\nlCkmH0RERJQpJh9ERESUKSYfRERElCkmH0RERJQpJh9ERESUKSYfRERElCkmH0RERJQpJh9ERESU\nKSYfRERElCkmH0RERJQpJh9ERESUKSYfRERElCkmH0RERJQpJh9ERESUKSYfRERElCkmH0RERJQp\nJh9ERESUKSYfRERElCkmH0RERJQpJh9ERESUKSYfRERElCkmH0RERJQpJh9ERESUKSYfRERElCkm\nH0RERJQpJh9ERESUKSYfRERElCkmH0RERJQpJh9ERESUKSYfRERElCkmH0RERJQpJh9ERESUKSYf\nRERElCkmH0RERJSpWMmHiJwoIs+IyFci8rGI/FtEVg0s84iIzPf9zBORywPLLCci94rIbBGZISLn\niAgTISIiogroHHP5LQBcAuC52nvPBPCAiAxQSn1bW0YB+DuAPwGQ2nNzvBXUkowxAKYDGARgaQCj\nAPwA4KRkH4OIiIiKIlZpg1JqR6XUKKXUFKXUZAAHAlgewMDAonOUUp8qpT6p/Xzje217AKsDGK6U\nmqyUGgudqIwQkbjJEBER5cTs2cBJJwFz57qOhPIubVVHL+iSjpmB54eLyKciMllEzhCRbr7XBgGY\nrJT6zPfcWAA9AayZMh4iInLkkkuAv/4VeOAB15FQ3iVOPkREAFwI4HGl1Ku+l24GsD+AoQDOAPB/\n0NUqnn4APg6s7mPfaw394x9JoyUiItvmzdOPSrmNg/IvTTXH5QDWALCZ/0ml1NW+P18RkRkA/isi\nKyml3mmxzqaH7DnnjMQjj/RE377159ra2tDW1hYrcCIiojIaPXo0Ro8e3e65WbNmOYqmsUTJh4hc\nCmBHAFsopT5qsfiE2mN/AO8AmAFgo8AyXjoRLBEJuADPPLMBs2oiohzjOdqdsBvySZMmYeDAYNNM\nt2JXu9QSj90AbKWUej/CW9aHLtHwkpSnAKwtIkv4ltkOwCwAr4KIiApJpPUyREDMko/aeB1tAHYF\nMFtEvBKLWUqp70RkZQD7QXel/RzAugDOB/CoUurl2rIPQCcZo0TkdwCWAnA6gEuVUj+m/UBERESU\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f51faaab310>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(sample.cpu().data.numpy()[0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "ename": "RuntimeError",
     "evalue": "cannot call .data on a torch.Tensor: did you intend to use autograd.Variable?",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mRuntimeError\u001b[0m                              Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-9-6c9d799ac4b5>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0msample\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtrans\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMuLawExpanding\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0msample\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcpu\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      2\u001b[0m \u001b[0mlibrosa\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moutput\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrite_wav\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"sample.wav\"\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msample\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mnumpy\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0msr\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m16000\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;32m/usr/local/lib/python2.7/dist-packages/torch/tensor.pyc\u001b[0m in \u001b[0;36mdata\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m    393\u001b[0m     \u001b[0;34m@\u001b[0m\u001b[0mproperty\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    394\u001b[0m     \u001b[0;32mdef\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 395\u001b[0;31m         \u001b[0;32mraise\u001b[0m \u001b[0mRuntimeError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'cannot call .data on a torch.Tensor: did you intend to use autograd.Variable?'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    396\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    397\u001b[0m     \u001b[0;31m# Numpy array interface, to support `numpy.asarray(tensor) -> ndarray`\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mRuntimeError\u001b[0m: cannot call .data on a torch.Tensor: did you intend to use autograd.Variable?"
     ]
    }
   ],
   "source": [
    "sample = trans.MuLawExpanding()(sample.cpu().data)\n",
    "librosa.output.write_wav(\"sample.wav\",sample.numpy()[0],sr=16000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
